//
//  TMNetManager.h
//  TaskManager
//
//  Created by vip on 16/5/18.
//  Copyright © 2016年 M&H. All rights reserved.
/*******************************************************
 这个类是基于AFN的上层封装，通过读网络配置GNRAPIConfig进行请求映射
 GNRAPIConfig结构必须标准：
 例如
 name：请求名 （通过请求名来取相应的请求模型）
 method：GET 或者 POST 可进行put与delete的扩展
 url：这个url是在拼接在源url之后
 responseType: 返回数据类型 json xml data 三种
 note:这个是注释参数 开发者自己看 不会读取
 staticParamDic:静态扩展参数列表 扩展参数会直接放进get的url或者post的参数字典
 对于动态的扩展参数使用数据模型传入
 *******************************************************/

#import <Foundation/Foundation.h>
#import "AFNetworking.h"
#import "TMNetError.h"
#import "TMNetRequestItem.h"
#import "TMNetHandleInterface.h"
@interface TMNetManager : NSObject
/**
 *
 *  @brief 获取代理对象
 *
 */
+(instancetype)sharedTheSingletion;
/**
 *  @brief 这个方法通过名称进行相应的请求
 *
 *  @name plist文件中配置的请求名称
 *
 *  @para 请求参数配置模型
 *
 *  @data 请求返回数据模型对象
 *
 *  @completion 请求完成后的回调 成功或失败 如果成功 data对象会被自动赋值 失败则会有错误信息
 *
 */
-(void)netForRequestName:(NSString *)name withParam:(TMNetBaseModel *)para forDataModel:(TMNetBaseModel *)data completion:(void(^)(BOOL success,TMNetError *error))completion;
/**
 *  @brief 上传头像
 *
 */
- (void)uploadHead:(NSString *)imagePath withParam:(TMNetBaseModel *)para forDataModel:(TMNetBaseModel *)dataModel progress:(void (^)(CGFloat progress))progress completion:(void (^)(BOOL, TMNetError *))completion;

//提交字典
- (void)postParam:(NSMutableDictionary *)param forDataModel:(TMNetBaseModel *)dataModel completion:(void (^)(BOOL, TMNetError *))completion;
@end
